package uabc.ia.agentelimpieza.agente;

import java.util.HashMap;

import uabc.ia.agentelimpieza.archivo.lecturaArchivo;
import uabc.ia.agentelimpieza.entidades.*;

public class ProgramaAgente {
	HashMap<String,Integer> reglas;
	HashMap<Integer,String> reglaAccion;

	public ProgramaAgente(){
		lecturaArchivo lecturaArchivo = new lecturaArchivo();
		reglas = new HashMap<String,Integer>();
		reglaAccion = new HashMap<Integer,String>();
		
		reglas = lecturaArchivo.getPercepcionesReglas();
		reglaAccion = lecturaArchivo.getAcciones();
	}
	
	public Accion agenteReflejoSimple(Percepcion percepcion){
		Estado estado;
		Accion accion = new Accion();
		int regla;
		estado = interpretarEntrada(percepcion);
		regla = reglaCoincidencia(estado);
		accion.setAccion(reglaAccion.get(regla));
		accion.setNumeroRegla(regla);
		return accion;
	}
	
	public Estado interpretarEntrada(Percepcion percepcion){
		Estado estado = new Estado();
		estado.setDireccion(percepcion.getDireccion());
		estado.setLocacion(percepcion.getLocacion());
		estado.setSuciedad(percepcion.isSuciedad());
		return estado;
	}
	
	public int reglaCoincidencia(Estado estado){	
		//System.out.println(estado.getPercepcion());
		return reglas.get(estado.getPercepcion());
	}
}
